package com.yuyou.fn.analyze.service;

import com.github.wens.mybatisplus.plugins.Page;
import com.yuyou.fn.analyze.vo.*;
import com.yuyou.fn.educational.vo.AttendClassLectureQueryVo;
import com.yuyou.fn.educational.vo.TeacherQueryVo;
import com.yuyou.fn.platform.entity.SysUser;
import com.yuyou.fn.report.vo.*;
import com.yuyou.fn.settlement.entity.ChangeRecord;
import com.yuyou.fn.settlement.entity.IncomeCategory;
import com.yuyou.fn.settlement.entity.MainAccount;
import com.yuyou.fn.settlement.vo.FeeCategoryTreeMapVo;

import java.util.Date;
import java.util.List;

/**
 *
 * ProductTarget 表数据服务层接口
 *
 */
public interface ICostCenterService {

    /**
    *@Description: 浮动奖金人员名单
    *@Param:
    *@return:
    *@Author: lzh
    *@date:
    */
    List<EmployeeMessageVo> findEmployeeMessage(TeacherQueryVo teacherQueryVo);

    /**
     *@Description: 咨询师新老生科数和金额
     *@Param:
     *@return:
     *@Author: lzh
     *@date:
     */
    List<NewOldStudentBranchAdvanceVo> findNewOldStudentBranchAmount(StudentRegDetailQueryVo studentRegDetailQueryVo);

    /**
     *@Description: 班主任续读生科数金额
     *@Param:
     *@return:
     *@Author: lzh
     *@date:
     */
    List<SeqStepStudentBranchAdvanceVo> findSeqStepStudentBranchAmount(RegRelativceQueryVo regRelativceQueryVo, PeriodQueryRegVo periodQueryRegVo);


    /**
     *@Description: 期新老生科数
     *@Param:
     *@return:
     *@Author: lzh
     *@date:
     */
    List<PeriodStudentBranchVo> findPeriodStudentBranch(List<Long> periodIds);

    /**
     *@Description:网报新老生招生提成
     *@Param:
     *@return:
     *@Author: lzh
     *@date:
     */
    List<NoCounselorBranchVo> countBusTeamOlineNoCounselorBranch(StudentRegDetailQueryVo studentRegDetailQueryVo);

    
    /**
    *@Description: 期奖金综合完成率
    *@Param:
    *@return:
    *@Author: lzh
    *@date:
    */
    List<PeriodBonusCompletionRateVo> findPeriodBonusCompletionRate();
    
    /**
     *@Description: 咨询师新老续预收（基于生源类型）
     *@Param:
     *@return:
     *@Author: lzh
     *@date:
     */
    List<CounselorBranchAdvanceVo> findCounselorBranchAdvanceByStudentState(StudentRegDetailQueryVo studentRegDetailQueryVo);

    /**
    *@Description: 课酬设置
    *@Param:
    *@return:
    *@Author: lzh
    *@date:
    */
    List<EmployeeCourseVo> findEmployeeCourse(ClassLectureDetailQueryVo classLectureDetailQueryVo);

    List<EmployeeAttendanceVo> findEmployeeAttendance(AttendClassLectureQueryVo attendClassLectureQueryVo);


    /**
     *@Description: 业务组期数消耗
     *@Param:
     *@return:
     *@Author: lzh
     *@date:
     */
    List<BusTeamPeriodConsumeVo> findBusTeamPeriodConsumeList(List<Long> periodIds);
}